4장. Python (NumPy·PyTorch)

AI 엔지니어링 선수지식 — 4장. 대상: 고등학생·학부 1년차.

4. Python (NumPy·PyTorch)

AI 의 거의 모든 코드는 Python 으로 씁니다. 그중 NumPy(숫자 배열)와 PyTorch(딥러닝)가 양대 도구이며, 둘 다 벡터·행렬을 빠르게 다루는 것이 핵심입니다.

4.1 NumPy 배열 (ndarray)

숫자를 격자로 담는 고속 배열로, Python 기본 리스트보다 수십 배 빠릅니다.

비유 — 엑셀의 코드 버전. 셀에 숫자를 채우고 한 번에 계산하는 엑셀처럼, ndarray 는 반복문 없이 배열 전체를 한 줄로 연산합니다.

직접 해보기 — 리스트는 [x*2 for x in [1,2,3]] 처럼 반복문이 필요하지만, NumPy 는 np.array([1,2,3]) * 2 한 줄로 [2 4 6] 을 얻습니다.

a = np.array([[1, 2, 3], [4, 5, 6]])
print(a.shape)         # (2, 3)
print(a.mean(axis=0))  # [2.5 3.5 4.5] (열별 평균)
print(a[a > 3])        # [4 5 6] (조건 필터)

실무. 데이터 전처리·통계·이미지 처리의 기본기이며, Pandas·scikit-learn·PyTorch 가 전부 NumPy 위에 지어졌습니다.

LLM 연결. 임베딩·확률 배열을 NumPy 로 다룹니다. 모든 텐서 연산의 개념적 출발점입니다.

더 깊이NumPy Absolute Beginners

4.2 브로드캐스팅 (Broadcasting)

모양이 다른 배열끼리 연산할 때 작은 쪽을 자동으로 늘려 맞추는 규칙입니다.

비유 — 양념 한 스푼씩. 학생 30명 점수에 전원 +5점 할 때, 5를 30번 복사할 필요 없이 한 번에 더해지는 것입니다.

직접 해보기np.array([[80],[90],[70]]) + 5 는 전원 +5 되어 [[85],[95],[75]] 가 됩니다.

M = np.array([[1, 2, 3], [4, 5, 6]])
print(M - M.mean(axis=0))   # 각 열에서 평균 빼기 (자동 확장)

실무. 정규화(평균 빼고 표준편차 나누기)가 전부 브로드캐스팅이라 코드가 짧고 빨라집니다.

LLM 연결. 배치 데이터(문장 여러 개)에 같은 가중치를 적용할 때 브로드캐스팅이 자동 처리합니다.

더 깊이NumPy Broadcasting

4.3 PyTorch 텐서·자동미분

GPU 까지 갈 수 있는 NumPy 배열(텐서)에 미분 자동 계산(autograd)이 더해진 것입니다.

비유 — NumPy 의 형. ndarray 가 계산기라면, 텐서는 GPU 가속에 자동 미분까지 되는 계산기입니다.

직접 해보기x = torch.tensor(2.0, requires_grad=True) 로 두고 y = x**3; y.backward() 하면, 손으로 미분 안 해도 x.grad 가 3x² = 12 를 자동으로 줍니다.

import torch
x = torch.tensor(2.0, requires_grad=True)
(x**3).backward()
print(x.grad)   # tensor(12.)

실무. 모든 딥러닝 모델이 PyTorch(또는 유사 프레임워크) 텐서로 작성되며, autograd 덕에 역전파를 손으로 짤 필요가 없습니다.

LLM 연결. 모든 LLM 이 텐서로 구현되고, autograd 가 섹션 2(미분)·5(역전파)를 자동화해 줍니다.

더 깊이PyTorch Learn the Basics

4.4 정리

도구 역할
NumPy ndarray 숫자 배열 기본 (벡터·행렬)
브로드캐스팅 정규화·배치 연산 간결화
PyTorch 텐서 GPU 가속 배열
autograd 미분·역전파 자동화

한 문장으로, NumPy 로 숫자를 빠르게, PyTorch 로 GPU 와 자동미분까지 — 이 둘이 AI 코드의 손과 발입니다.

참고 자료NumPy Absolute Beginners · PyTorch Basics


난이도
에피소드
질문
카드를 로딩 중...
답변

클릭하거나 Space를 눌러 뒤집기

0 / 0
학습 진도 0%
이동   Space 뒤집기   R 셔플